Gray-box testing
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
top
Gray-box testing (International English spelling: grey-box testing) is a combination of white-box testing and black-box testing. The aim of this testing is to search for the defects, if any, due to improper structure or improper usage of applications.cite-ref-1[1]cite-ref-2[2]
Contents
• Overview
• Examples
• Effects
• See also
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Overview
A black-box tester is unaware of the internal structure of the application to be tested, while a white-box tester has access to the internal structure of the application. A gray-box tester partially knows the internal structure, which includes access to the documentation of internal data structures as well as the algorithms used.cite-ref-3[3]
Gray-box testers require both high-level and detailed documents describing the application, which they collect in order to define test cases.cite-ref-4[4]
Need for gray-box testing
Gray-box testing is beneficial because it takes the straightforward technique of black-box testing and combines it with the code-targeted systems in white-box testing.
Gray-box testing is based on requirement test case generation because it presents all the conditions before the program is tested by using the assertion method. A requirement specification language is used to make it easy to understand the requirements and verify its correctness.cite-ref-cgsec-5-0[5]
Gray-box testing assumptions for object-oriented software
Object-oriented software consists primarily of objects; where objects are single indivisible units having executable code and/or data. Some assumptions are stated below which are needed for the application of use gray-box testing.
• Activation of Methodscite-ref-6[6]
• State Reporting in Class Under Test (CUT).
• Report Testing is inherent in Class Under Test.cite-ref-cgsec-5-1[5]
Examples
Techniques
• Matrix Testing: states the status report of the project.
• Regression testing: it implies rerunning of the test cases if new changes are made.
• Pattern Testing: verify the good application for its design or architecture and patterns.
• Orthogonal array testing: used as subset of all possible combination.cite-ref-10[10]
Effects
Positive Effects
• Offers combined benefits: As Gray-box testing is combination of white-box and black-box testing, it serves advantages from both the testings.
• Non Intrusive: It is based on functional specification, architectural view whereas not on source code or binaries which makes it invasive too.
• Intelligent Test Authoring: Gray-box tester handles intelligent test scenario, for example, data type handling, communication protocol, exception handling.
• Unbiased Testing: In spite of all above advantages and functionalities, Gray-box testing maintains boundary for testing between tester and developer.cite-ref-crosschecknet1-11-0[11]
Negative Effects
• Partial code coverage: In gray-box testing, source code or binaries are missing because of limited access to internal or structure of the applications which results in limited access for code path traversal.
• Defect Identification: In distributed applications, it is difficult to associate defect identification. Still, Gray-box testing is a boon to find how appropriate these systems throw exceptions and how fine are these exceptions handled in distributed systems having web services environment.cite-ref-crosschecknet1-11-1[11]cite-ref-12[12]
Applications
• Gray-box testing is well suited for web applications. Web applications have distributed network or systems; due to absence of source code or binaries it is not possible to use white-box testing. Black-box testing is also not used due to just contract between customer and developer, so it is more efficient to use gray-box testing as significant information is available in Web Services Description Language (WSDL).cite-ref-13[13]
• Gray-box testing is suited for functional or business domain testing. Functional testing is done basically a test of user interactions with may be external systems. Gray-box testing is well-suited for functional testing due to its characteristics; it also helps to confirm that software meets the requirements defined for the software.cite-ref-14[14]cite-ref-15[15]cite-ref-16[16]cite-ref-17[17]
Future scope
The distributed nature of Web services allows gray-box testing to detect defects within a service-oriented architecture (SOA). As we know, white-box testing is not suitable for Web services as it deals directly with the internal structures. White-box testing can be used for state art methods; for example, message mutation which generates the automatic tests for large arrays to help exception handling states, flow without source code or binaries. Such a strategy is useful to push gray-box testing nearer to the outcomes of white-box testing.
See also
References
cite-note-11. ↑ "Microsoft Research – Emerging Technology, Computer, and Software Research" (PDF).
cite-note-22. ↑ "Archived copy" (PDF). Archived from the original (PDF) on 29 March 2012. Retrieved 17 October 2011.{{cite web}}: CS1 maint: archived copy as title (link)
cite-note-33. ↑ "Gray Box Testing". Software Testing Fundamentals. 4 November 2011. Archived from the original on 16 November 2021. Retrieved 19 January 2012.
cite-note-44. ↑ "Example of grey box testing with definition". Geekinterview.com. Retrieved 19 January 2012.
cite-note-cgsec-55. ↑ citerefjake-rogers2016Jake Rogers (8 August 2016). "Common Questions Regarding Grey-Box Testing". cgsec.co.uk. Retrieved 8 August 2016.
cite-note-66. ↑ "Object-Oriented Extensions to Pascal". Pascal-central.com. Archived from the original on 5 June 2021. Retrieved 19 January 2012.
cite-note-88. ↑ "Archived copy" (PDF). Archived from the original (PDF) on 3 April 2012. Retrieved 17 October 2011.{{cite web}}: CS1 maint: archived copy as title (link)
cite-note-1010. ↑ "Explore the World of Gray Box Testing". Extremesoftwaretesting.com. Retrieved 19 January 2012.
cite-note-crosschecknet1-1111. ↑ "SOA Testing Tools for Black, White and Gray Box SOA Testing Techniques". Crosschecknet.com. Archived from the original on 1 October 2018. Retrieved 19 January 2012.
cite-note-1212. ↑ "E33 Gray Box Testing.PDF" (PDF).
cite-note-1313. ↑ citereframdeo2011Ramdeo, Anand (5 May 2011). "Gray Box Testing - Software". Testing Geek. Retrieved 19 January 2012.
cite-note-1616. ↑ http://legacy.cleanscape.net/docs_lib/paper_graybox.pdf